Memory devices are typically provided as internal, semiconductor, integrated circuits in computers or other electronic devices. There are many different types of memory including random-access memory (RAM), read only memory (ROM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), and flash memory.
Flash memory devices have developed into a popular source of non-volatile memory for a wide range of electronic applications. Flash memory devices typically use a one-transistor memory cell that allows for high memory densities, high reliability, and low power consumption. Changes in threshold voltage of the cells, through programming of charge storage or trapping layers or other physical phenomena, determine the data value of each cell. Common uses for flash memory include personal computers, personal digital assistants (PDAs), digital cameras, digital media players, digital recorders, games, appliances, vehicles, wireless devices, cellular telephones, and removable memory modules, and the uses for flash memory continue to expand.
As the performance of electronic systems employing flash memory devices increases, flash memory device performance also increases. Performance increases include reducing power consumption, increasing speed, and increasing the memory density. One way to accomplish these tasks is by decreasing the size of the memory array and its individual devices.
In flash memories, electrons are brought on to a floating gate to program the memory, and electrons are removed from the floating gate to erase the memory. This process is well known. Electrons migrate off the gate in several ways without an erase function. This is known as charge loss. Several types of charge loss occur, including intrinsic charge loss, single bit charge loss, and a relatively new phenomenon, quick charge loss. Intrinsic charge loss is the migration of electrons off of a floating gate at a slow rate, typically on the order of millivolts per month. Single cell charge loss is large charge losses off of a very small number of cells in an array. Quick charge loss is significant but measurable charge loss of electrons from the floating gate over a small finite amount of time (i.e., between powering up a part on one tester, placing electrons on the floating gate, and the time a first read is accomplished, that is on the order of half a second to a second). Further, some memories use a process called wear leveling on blocks. Wear leveling is a basic algorithm that makes sure all blocks get programmed and erased the same, that is the same number of times. Program and erase cycles are distributed over all blocks of the memory, so that they all are stressed about the same as opposed to one block getting overly stressed. In wear leveling, once a block, for example block 0, is cycled, all other blocks in the memory are cycled before block 0 is cycled again.
For the reasons stated above, and for other reasons stated below which will become apparent to those skilled in the art upon reading and understanding the present specification, there is a need in the art for improved charge loss compensation in memories.